//
//  MainTabBar.swift
//  Weibo
//
//  Created by apple on 15/11/26.
//  Copyright © 2015年 mac. All rights reserved.
//

import UIKit

/*
支持 手码创建  + SB/xib创建
*/

class MainTabBar: UITabBar {

    override init(frame: CGRect) {
        //调用父类的初始化方法 
        super.init(frame: frame)
        setupUI()
    }

    //一旦实现  init(frame:) 系统就默认当前类 只能够通过手码的方式 进行创建
    
    //这个语句 默认实现一个报错  通过 XIB / SB加载视图 就会执行该方法
    required init?(coder aDecoder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
        //如果希望自定义视图 既支持手码创建 也支持 XIB/SB创建 可以将默认报错 注释  
        super.init(coder: aDecoder)
        setupUI()
    }
    
    private func setupUI() {
        //添加子视图
        addSubview(composeBtn)
    }
    
    /**
     懒加载 撰写按钮
     */
    
    lazy var composeBtn: UIButton = {
        //() 会返回 一个 自定义样式的button
        let btn = UIButton()
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        //根据按钮的背景图片 给定 size大小
        btn.sizeToFit()
        return btn
    }()
    
    
    override func layoutSubviews() {
        super.layoutSubviews()
        //修改每一个 item的宽度 并且将 中间位置 留出
        let w = screenW / 5
        let h = self.bounds.height
        let rect = CGRect(x: 0, y: 0, width: w, height: h)
        
        //定义 索引标记
        var index: CGFloat = 0
        for v in subviews {
            //修该 UITabBarButton 的frame
            if v.isKindOfClass(NSClassFromString("UITabBarButton")!) {
               //设置修改过的frame
                v.frame = CGRectOffset(rect, w * index, 0)
//                if index == 1 {
//                    index++
//                }
//                index++
                
                //三目运算
                index += (index == 1 ? 2 : 1)
            }
        }
        
        //设置撰写按钮的frame
//        composeBtn.frame = CGRectOffset(rect, 2 * w, -20)
//        bringSubviewToFront(composeBtn)
        composeBtn.frame = CGRectOffset(rect, 2 * w, 0)
    }
}
